/*
使用 CommonJS 语法导入了两个 Electron 模块;
app，它着您应用程序的事件生命周期。
BrowserWindow，它负责创建和管理应用窗口。
*/
const { app, BrowserWindow, ipcMain } = require('electron')
const path = require('node:path')

// 将页面加载到新的 BrowserWindow实例中

/*

  frame: false, //边框
    fullscreen: true, //全屏
    transparent: true, //窗口透明
    alwaysOnTop: true, // 窗口总是置顶
    skipTaskbar: false, // 使窗口不显示在任务栏中
    focusable: false, // 窗口不获取焦点，可以与其他应用互动


    
  win.setIgnoreMouseEvents(true) 忽略窗口内的所有鼠标事件 
  在此窗口中发生的所有鼠标事件将被传递到此窗口下面的窗口, 但
  如果此窗口具有焦点, 它仍然会接收键盘事件
*/

const createWindow = () => {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      preload: path.join(__dirname, 'preload.js'),
    },
  })
  // 加载指定界面
  win.loadFile('index.html')
}
// 应用启动时加载窗口
app.whenReady().then(() => {
  ipcMain.handle('ping', () => 'pong')
  createWindow()
  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) createWindow()
  })
})

// 关闭所有窗口时退出应用
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})
